#ifndef SL_SPRITEOBJECT_HPP
#define SL_SPRITEOBJECT_HPP

// SFML Header
#include <SFML/Graphics.hpp>

// SL
#include "../System/Exception.hpp"
#include "../System/Operator.hpp"

namespace sl
{
	class SpriteObject : public sf::Sprite, public Operator<SpriteObject>
	{
	public:
		SpriteObject();
		SpriteObject(sf::Texture* img);
		virtual ~SpriteObject();

	public:
		bool HasATexture();

	public:
		virtual SpriteObject* Update(float time);
		SpriteObject* SetTexture(sf::Texture* img);

	public:
		friend std::ostream& operator<<(std::ostream& os, const SpriteObject& obj);
		friend std::istream& operator>>(std::istream& is, SpriteObject& obj);
	};
}

#endif //SL_SPRITEOBJECT_HPP